____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Update (SQL)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
UPDATE Tabellenname SET Spaltenname = Wert [, Spaltenname = Wert ...] [WHERE Bedingung]
Die Verwendung der UPDATE-Anweisung beschrΓ€nkt sich auf Benutzer mit Berechtigung zur DatenΓ€nderung (UPDATE-Berechtigung) der entsprechenden Tabelle oder Spalte. Die zu Γ€ndernden Werte unterliegen den EinschrΓ€nkungen fΓΌr PrimΓ€r(schlΓΌssel), CHECK und NOT NULL.
Contents
β’ Beispiele
β’ Risiken
β’ Siehe auch
β’ Einzelnachweise
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Beispiele
Die Spalte C1 der Tabelle T nimmt in allen Zeilen mit Wert βaβ in Spalte C2 den Wert 1 an:
UPDATE T
SET C1 = 1
WHERE C2 = 'a'
FΓΌr alle Zeilen mit Wert βaβ in Spalte C2 nimmt Spalte C1 den Wert 9 und Spalte C3 den Wert 4 an:
UPDATE T
SET C1 = 9,
C3 = 4
WHERE C2 = 'a'
ErhΓΆhe den Wert der Spalte C1 um 1 fΓΌr alle Zeilen mit Wert βaβ in Spalte C2:
UPDATE T
SET C1 = C1 + 1
WHERE C2 = 'a'
Positionierung des Strings βTextβ vor dem Wert von Spalte C1, falls die Spalte C2 den Wert βaβ enthΓ€lt:
UPDATE T
SET C1 = 'Text' || C1
WHERE C2 = 'a'
Setze den Wert der Spalte C1 der Tabelle T1 auf 2, sofern die Spalte C2 einen Wert aus der Teilmenge der WHERE-Bedingung enthΓ€lt. Die Teilmenge enthΓ€lt dabei diejenigen Werte der Spalte C3 der Tabelle T2, bei denen die Spalte C4 den Wert 0 aufweist:
UPDATE T1
SET C1 = 2
WHERE C2 IN ( SELECT C3
FROM T2
WHERE C4 = 0)
Festlegen von Werten mehrerer Spalten in einer einzigen Anweisung:
UPDATE T
SET C1 = 1,
C2 = 2
Mehrere WHERE-Bedingungen:
UPDATE T
SET A = 1
WHERE C1 = 1
AND C2 = 2
Die UPDATE-Anweisung erlaubt auΓerdem Joins, in manchen Datenbanksystemen sogar eine vom FROM-Teil abweichende Notation des SQL-Standards:
UPDATE a
SET a.[Update_Spalte] = Update_Wert
FROM Artikel a
JOIN Systematik s
ON a.ArtikelID = s.ArtikelID
WHERE c.classID = 1
UPDATE
(
SELECT *
FROM Artikel
JOIN Systematik
ON Artikel.ArtikelID = Systematik.ArtikelID
WHERE Systematik.classID = 1
)
SET [Update_Spalte] = Update_Wert
In manchen Datenbanksystemen wie PostgreSQL definieren sich die Werte der resultierenden Tabelle eines Joins durch je eine UPDATE-Anweisung pro Ergebniszeile.cite-ref-2[2]cite-ref-3[3]
Risiken
β’ Halloween-Problem: In manchen Update-Anweisungen verursachen die verknΓΌpften Indizes von SET-Definitionen und WHERE-Bedingungen (Endlos)schleifen.
β’ Eine Update-Anweisung mit fehlender WHERE-Bedingung wirkt auf alle EintrΓ€ge der ausgewΓ€hlten Spalten.
Siehe auch
Einzelnachweise
cite-note-22. β Tech On The Net: PostgreSQL: FROM Clause. Abgerufen am 1. Oktober 2018.
cite-note-33. β PostgreSQL: Update. Abgerufen am 22. November 2018.